您可以在这里找到在 Kanzi 应用程序中使用 JavaScript 脚本的参考。将执行脚本 (Execute Script) 动作添加到节点中的任何触发器后,您就可以使用脚本。请参阅使用脚本和触发器。
Kanzi 使用 Google 的 V8 JavaScript 引擎。
JavaScript 脚本功能仅可用于 Windows。如果想在您的目标平台上使用 JavaScript 脚本功能,请联系 Rightware 销售部,联系方式如下: sales@rightware.com。
在 Kanzi Studio 工程中,脚本存储在 素材库 (Library) > 资源文件 (Resource Files) > 脚本 (Scripts) 中,在硬盘驱动器上,存储在 <ProjectName>/Scripts 目录中。您可以在 Kanzi Studio 脚本编辑器 (Script Editor) 中或任何其他文本编辑器中编写和编辑脚本。
| 动作 | 描述 (Description) | 快捷键 |
|---|---|---|
| 保存 (Save) | 保存当前打开的脚本。 | Ctrl S |
| 注释选定内容 | 向当前选定的代码行添加注释。 | Ctrl K Ctrl C |
| 取消注释选定内容 | 取消注释当前选定且带注释的代码行。 | Ctrl K Ctrl U |
您可以在脚本中使用以下函数和方法。
在 Kanzi 应用程序中,您可以使用标准 JavaScript API。例如,您可以使用:
var d = new Date();
print('Date: ' + d.toString());
print('Milliseconds since 1970: ' + d.getTime());
print('Year: ' + d.getFullYear());
print('Month: ' + (d.getMonth() + 1));
print('Day of the month: ' + d.getDate());
var minutes = String(d.getMinutes()).length < 2 ? '0' + d.getMinutes() : d.getMinutes();
var seconds = String(d.getSeconds()).length < 2 ? '0' + d.getSeconds() : d.getSeconds();
print('Time: ' + d.getHours() + ':'+ minutes + ':'+ seconds);print('random number in [0, 1]: ' + Math.random());
print('pi: ' + Math.PI);
print('sqrt(3): ' + Math.sqrt(3));
print('pow(3, 3): ' + Math.pow(3, 3));
print('sin(PI / 2): ' + Math.sin(Math.PI / 2));
print('cos(PI): ' + Math.cos(Math.PI));
print('round(4.2): ' + Math.round(4.2));var text = 'Kanzi Rules!';
print('The position of "!": ' + text.search(/!/));
print('Has "Kanzi": ' + /Kanzi/.test(text));
print('Replace: ' + text.replace(/Kanzi/, "Kanzi 3"));创建一个节点。
| 语法 | instantiateNode('type.node', 'name')
|
||||||
| 参数 |
|
||||||
| 示例 | //查找使用别名 Scene 的场景 (Scene) 节点。 var scene = node.lookupNode('#Scene'); //创建一个3D 流式布局 (Flow Layout 3D) 节点。 var flowLayout = instantiateNode('Kanzi.FlowLayout3D', 'NewFlowLayout'); //向场景 (Scene) 节点添加3D 流式布局 (Flow Layout 3D) 节点。 scene.addChild(flowLayout); |
实例化预设件。
| 语法 | instantiatePrefab('prefab', 'name')
|
||||
| 参数 |
|
||||
| 示例 | //实例化预设件 PrefabName 为触发执行脚本 (Execute Script) 动作的节点的子节点。
//节点是一个全局变量,并解析到节点。
var prefab = instantiatePrefab('kzb://<project_name>/Prefabs/PrefabName', 'NewItem');
node.addChild(prefab);
|
在场景图中查找并返回节点。
| 语法 | lookupNode('node')
|
||
| 参数 |
|
||
| 返回 | 节点。如果 lookupNode 找不到节点,则会返回 null 值。 |
||
| 示例 | //查找别名 Item 指向的节点。
var item = node.lookupNode('#Item');//查找节点 Text Block 3D,该节点相对于
//您调用该方法的节点。
var textBlock3D = node.lookupNode('Text Block 3D');
//打印当前节点的名称 (Name) 属性的值。
//节点是一个全局变量,并解析到节点。
print(node.Name);
|
打印到日志 (Log) 窗口。
| 语法 | print('content')
|
||
| 参数 |
|
||
| 示例 | //打印 Hello world! 到日志 (Log) 窗口
print('Hello world!')//查找名为 Grid List Box 3D 的 3D 网格列表框 (Grid List Box 3D) 节点。 var gridListBox = node.lookupNode('Grid List Box 3D'); //将 3D 网格列表框中的项数打印到日志 (Log) 窗口。 print(gridListBox.getItemCount()); |
设置属性的值。如果该节点不具备您设置的属性,Kanzi 会添加该属性。使用 setProperty 设置材质和随附属性,例如布局属性。调用该节点之后,您可以使用 Kanzi Engine 属性名称设置所有其他属性。
在 Kanzi Studio 中将鼠标指针悬停在属性名称上时,可以看到 Kanzi Engine 属性名称。
请参阅 getProperty、removeLocalValue 和颜色属性。
| 语法 | setProperty('property', 'value')
|
||||
| 参数 |
|
||||
| 示例 | //查找名为 Plane 的网格并将其纹理 (Texture) 属性设为 //位于 纹理 (Textures)/Texture01 中的纹理。 var plane = node.lookupNode('Plane'); plane.setProperty('Texture', 'kzb://<project_name>/Textures/Texture01'); //查找该 TextBlock 别名指向的节点, //并将该节点中 文本 (Text) 属性的值设为“菜单 (Menu)”。 var textBlock = node.lookupNode('#TextBlock'); textBlock.Text = 'Menu'; //将节点的 名称 (Name) 属性设为 NewName。 textBlock.Name = 'NewName'; |
返回属性的值。可以在调用节点后,使用 Kanzi Engine 属性名获取属性。
在 Kanzi Studio 中将鼠标指针悬停在属性名称上时,可以看到 Kanzi Engine 属性名称。
请参阅 setProperty、removeLocalValue 和颜色属性。
| 语法 | getProperty('property')
|
||
| 参数 |
|
||
| 返回 | 属性的值 | ||
| 示例 | //查找 TextBlock 别名指向的节点, //获取该节点中 文本 (Text) 属性的值 //并将其打印到 日志 (Log) 窗口。 var textBlock = node.lookupNode('#TextBlock'); var text = textBlock.getProperty('TextBlockConcept.Text'); print(text);
//查找使用此执行此脚本所在节点的相对路径的
//Image1 和 Image2 节点。
var image1 = node.lookupNode('../Image1');
var image2 = node.lookupNode('../Image2');
//将 Image1 节点中 布局宽度 (Layout Width) 属性的值设置为
//Image2 节点中的 布局高度 (Layout Height) 属性。
image2.Height = image1.Width;//查找使用此执行此脚本所在节点相对位置的 //RootPage 节点。 var rootPage = node.lookupNode('../../RootPage'); //如果 RootPage 节点中的 默认子页 (Default Subpage) 属性已设置, //则打印指向该节点的相对路径到 日志 (Log) 窗口。 if (rootPage.DefaultSubPage) { print(rootPage.DefaultSubPage); } else { print("The Default Subpage property is not set!"); } |
删除节点中的某个属性。
在 Kanzi Studio 中将鼠标指针悬停在属性名称上时,可以看到 Kanzi Engine 属性名称。
请参阅 setProperty、getProperty 和颜色属性。
| 语法 | removeLocalValue('property')
|
||
| 参数 |
|
||
| 示例 | //查找 TextBlock 别名指向的节点
//并从该节点中移除 文本 (Text) 属性。
var textBlock = node.lookupNode('#TextBlock');
var text = textBlock.removeLocalValue('TextBlockConcept.Text');
|
使用数组设置颜色属性的值。
请参阅 getProperty、setProperty 和 removeLocalValue。
| 语法 | [r, g, b, a]
|
||||||||
| 参数 |
|
||||||||
| 示例 | //查找 Point Light 别名指向的节点
//并将该节点的点光源颜色 (Point Light Color) 属性设置为绿色。
var light = node.lookupNode('#Point Light');
light.setProperty('PointLightColor.Color', [0, 1, 0, 0]);//仅当节点的前景笔刷 (Foreground Brush) 或 背景笔刷 (Background Brush) 属性 //设置为颜色笔刷 (Color Brush) 时, //您可以设置颜色笔刷 (Color Brush) 属性的颜色。 //找到 Button 别名指向的节点, //重写颜色笔刷 (Color Brush) 中设置的前景笔刷 (Foreground Brush) 和背景笔刷 (Background Brush) 属性的颜色, //并将该节点颜色笔刷 (Color Brush) 属性的颜色设置为红色不透明。 var button = node.lookupNode('#Button'); button.setProperty('ColorBrush.Color', [1, 0, 0, 1]); |
所有节点可以拥有子节点,拥有项的列表框节点(3D 轨迹列表框 (Trajectory List Box 3D)、3D 网格列表框 (Grid List Box 3D)、2D 网格列表框 (Grid List Box 2D))除外。请参阅项。
向某个节点添加子节点。
| 语法 | addChild(node)
|
||
| 参数 |
|
||
| 示例 | //实例化名为 Sphere 的预设件,并将其命名为 NewSphere。
var sphere = instantiatePrefab('kzb://<project_name>/Prefabs/Sphere', 'NewSphere');
//查找名为“空 3D 节点”的 3D 空节点 (Empty Node 3D) 节点。
var emptyNode = node.lookupNode('Empty Node 3D');
//向 3D 空节点添加 NewSphere 节点。
emptyNode.addChild(sphere);
|
获取某个节点的子节点。
| 语法 | getChild()
|
| 示例 |
//查找名为 Empty Node 3D 的 3D 空节点 (Empty Node 3D) 节点。
var emptyNode = node.lookupNode('Empty Node 3D');
//获取 emptyNode 节点的第二个子节点。
emptyNode.getChild(1);
|
获取某个节点的子节点数量。
| 语法 | getChildCount()
|
| 示例 |
//查找名为 Empty Node 3D 的 3D 空节点 (Empty Node 3D) 节点。
var emptyNode = node.lookupNode('Empty Node 3D');
//获取 emptyNode 的子节点数量。
emptyNode.getChildCount();
|
移除某个节点的子节点。
| 语法 | removeChild(node)
|
||
| 参数 |
|
||
| 示例 | //实例化名为 Sphere 的预设件,并将其命名为 NewSphere。
var sphere = instantiatePrefab('kzb://<project_name>/Prefabs/Sphere', 'NewSphere');
//查找名为“空 3D 节点”的 3D 空节点 (Empty Node 3D) 节点。
var emptyNode = node.lookupNode('./Empty Node 3D');
//向 Empty Node 3D 节点添加 NewSphere 节点。
emptyNode.addChild(sphere);
//从 Empty Node 3D 节点移除 NewSphere 节点。
emptyNode.removeChild(sphere);
|
移除某个节点的所有子节点。
| 语法 | removeAllChildren()
|
| 示例 |
//查找 EmptyNode 别名指向的节点。
var emptyNode = node.lookupNode('#EmptyNode');
//移除 emptyNode 节点的所有子节点。
emptyNode.removeAllChildren();
|
获取当前节点的父节点。
| 语法 | getParent()
|
| 示例 | //获取当前节点的父节点。 //节点是一个全局变量,并解析到节点。 var parentNode = node.getParent(); //获取当前节点的父节点。
var nodeParent = node.lookupNode('..');
|
您可以将项添加到从项集合继承的控件。这些控件为所有列表框节点(3D 轨迹列表框 (Trajectory List Box 3D)、3D 网格列表框 (Grid List Box 3D)、2D 网格列表框 (Grid List Box 2D))。请参阅 API reference。
所有其他节点拥有子节点。请参阅子节点。
向某个节点添加项。
| 语法 | addItem(node)
|
||
| 参数 |
|
||
| 示例 | //实例化名为 Text Block 3D 的预设件,并将其命名为 NewText。
var text = instantiatePrefab('kzb://<project_name>/Prefabs/Text Block 3D', 'NewText');
//查找名为“Grid List Box 3D”的 3D 网格列表框 (Grid List Box 3D) 节点。
var gridListBox = node.lookupNode('Grid List Box 3D');
//向 3D 网络列表框节点添加 NewText 节点。
gridListBox.addItem(text);
|
从某个项的主页面获取该项。
| 语法 | getItem(index)
|
||
| 参数 |
|
||
| 返回 | 项 | ||
| 示例 |
//查找名为 Grid List Box 3D 的 3D 网格列表框 (Grid List Box 3D) 节点。
var gridListBox = node.lookupNode('Grid List Box 3D');
//获取 gridListBox 的第二个项。
gridListBox.getItem(1);
|
获取属于某个节点的项数量。
| 语法 | getItemCount()
|
| 返回 | 调用该方法的节点中的项数量 |
| 示例 | //查找名为 Grid List Box 3D 的 3D 网格列表框 (Grid List Box 3D) 节点。 var gridListBox = node.lookupNode('Grid List Box 3D'); //将 3D 网格列表框中的项数打印到日志 (Log) 窗口。 print(gridListBox.getItemCount()); |
移除节点中的所有项。
| 语法 | removeAllItems()
|
| 示例 |
//查找名为 Grid List Box 3D 的 3D 网格列表框 (Grid List Box 3D) 节点。
var gridListBox = node.lookupNode('Grid List Box 3D');
//移除 Grid List Box 3D 节点中的所有项。
gridListBox.removeAllItems();
|
移除节点中的某个项。
| 语法 | removeItem(node)
|
||
| 参数 |
|
||
| 示例 | //实例化名为 Text Block 3D 的预设件,并将其命名为 NewText。
var text = instantiatePrefab('kzb://<project_name>/Prefabs/Text Block 3D', 'NewText');
//查找名为“Grid List Box 3D”的 3D 网格列表框 (Grid List Box 3D) 节点。
var gridListBox = node.lookupNode('Grid List Box 3D');
//向 Grid List Box 3D 节点添加 NewText 节点。
gridListBox.addItem(text);
//移除 Grid List Box 3D 节点中的 NewText 节点。
gridListBox.removeItem(text);
|
您可以将焦点设置到节点,并在焦点链中移动焦点。焦点链是节点序列,它定义了 Kanzi 设置焦点到这些节点的顺序。请参阅焦点和使用焦点。
获取当前有焦点的节点。
请参阅 trySetFocus。
| 语法 | getFocusedNode()
|
| 返回 | 有焦点的节点。 |
| 示例 | //获取当前有焦点的节点。 var nodeInFocus = getFocusedNode(); //将节点的名称 (Name) 打印到日志 (Log) 窗口。 print(nodeInFocus.Name); |
设置节点的焦点。例如,使用 trySetFocus 设置工程中某个特定节点的焦点,以便能接收键盘的输入。请参阅使用触发器和键盘输入代码参考,以及 getFocusedNode。
| 语法 | trySetFocus()
|
| 示例 | //查找 Button 别名指向的节点。
var buttonNode = node.lookupNode('#Button');
//将焦点设为 buttonNode 节点。
buttonNode.trySetFocus();
|
将焦点从当前获得焦点的节点移动到焦点链中前进方向上的下一个节点。Kanzi 在焦点链中自动包括工程中的所有节点。默认情况下,焦点链将活动焦点从每个节点移动到下一个子节点。前进方向链采用节点层级先序遍历。如果下一个节点是焦点范围,该范围中第一个可聚焦的节点接收焦点。
请参阅 tryMoveActiveFocusBackward、tryMoveActiveFocusUpward、tryMoveActiveFocusDownward、tryMoveActiveFocusLeft 和 tryMoveActiveFocusRight。
| 语法 | tryMoveActiveFocusForward()
|
| 示例 | //将焦点从当前获得焦点的节点移动到启用可聚焦 (Focusable) 属性的下一个子节点。 //如果没有子节点,在工程树中向下移动焦点至下一个启用可聚焦 (Focusable) 属性的节点。 tryMoveActiveFocusForward(); |
将焦点从当前获得焦点的节点移动到焦点链中后退方向上的下一个节点。Kanzi 在焦点链中自动包括工程中的所有节点。后退方向链采用节点层级反向先序遍历。如果下一个节点是焦点范围,该范围中第一个可聚焦的节点接收焦点。
请参阅 tryMoveActiveFocusForward、tryMoveActiveFocusUpward、tryMoveActiveFocusDownward、tryMoveActiveFocusLeft 和 tryMoveActiveFocusRight。
| 语法 | tryMoveActiveFocusBackward()
|
| 示例 | //将焦点从当前获得焦点的节点移动到启用可聚焦 (Focusable) 属性的上一个子节点或父节点。 //如果没有子节点或父接单,在工程树中向上移动焦点至下一个启用可聚焦 (Focusable) 属性的节点。 tryMoveActiveFocusBackward(); |
将焦点从当前获得焦点的节点根据该节点的渲染位置从向上方向移动到下一个节点。使用 属性将相对路径设置成要接收焦点的节点。要接收焦点,节点必须启用 可聚焦 (Focusable) 属性。
请参阅 tryMoveActiveFocusForward、tryMoveActiveFocusBackward、tryMoveActiveFocusDownward、tryMoveActiveFocusLeft 和 tryMoveActiveFocusRight。
| 语法 | tryMoveActiveFocusUpward()
|
| 示例 | //将焦点从当前获得焦点的节点移动到 // 属性中指定的节点。 |
将焦点从当前获得焦点的节点根据该节点的渲染位置从向下方向移动到下一个节点。使用 属性将相对路径设置成要接收焦点的节点。要接收焦点,节点必须启用 可聚焦 (Focusable) 属性。
请参阅 tryMoveActiveFocusForward、tryMoveActiveFocusBackward、tryMoveActiveFocusUpward、tryMoveActiveFocusLeft 和 tryMoveActiveFocusRight。
| 语法 | tryMoveActiveFocusDownward()
|
| 示例 | //将焦点从当前获得焦点的节点移动到 |
将焦点从当前获得焦点的节点根据该节点的渲染位置移动到左侧下一个节点。使用 属性将相对路径设置成要接收焦点的节点。要接收焦点,节点必须启用 可聚焦 (Focusable) 属性。
请参阅 tryMoveActiveFocusForward、tryMoveActiveFocusBackward、tryMoveActiveFocusUpward、tryMoveActiveFocusDownward 和 tryMoveActiveFocusRight。
| 语法 | tryMoveActiveFocusLeft()
|
| 示例 | //将焦点从当前获得焦点的节点移动到 |
将焦点从当前获得焦点的节点根据该节点的渲染位置移动到右侧下一个节点。使用 属性将相对路径设置成要接收焦点的节点。要接收焦点,节点必须启用 可聚焦 (Focusable) 属性。
请参阅 tryMoveActiveFocusForward、tryMoveActiveFocusBackward、tryMoveActiveFocusUpward、tryMoveActiveFocusDownward 和 tryMoveActiveFocusLeft。
| 语法 | tryMoveActiveFocusRight()
|
| 示例 | // 将焦点从当前获得焦点的节点移动到 |
使用页面 (Page) 和主页面 (Page Host) 节点函数,在应用程序中的页面 (Page) 和主页面 (Page Host) 节点之间导航。
导航至页面 (Page) 或主页面 (Page Host) 节点。
| 语法 | navigateToThisPage()
|
| 示例 | //查找别名指向的节点。别名可以指向页面 (Page) 或主页面 (Page Host) 节点。 var settingsPageHost = node.lookupNode('#SettingsPageHost'); //导航至 settingsPageHost 节点。 settingsPageHost.navigateToThisPage(); |
导航至主页面 (Page Host) 节点的下一个页面 (Page) 或主页面 (Page Host) 子节点。
| 语法 | navigateToNextPage()
|
| 示例 | //查找别名指向的主页面 (Page Host) 节点。 var applicationsPageHost = node.lookupNode('#ApplicationsPageHost'); //导航至 applicationsPageHost 节点的下一个页面 (Page) 或主页面 (Page Host) 子节点。 applicationsPageHost.navigateToNextPage(); |
导航至主页面 (Page Host) 节点的上一个页面 (Page) 或主页面 (Page Host) 子节点。
| 语法 | navigateToPreviousPage()
|
| 示例 | //查找别名指向的主页面 (Page Host) 节点。 var applicationsPageHost = node.lookupNode('#ApplicationsPageHost'); //导航至 applicationsPageHost 节点的上一个页面 (Page) 或主页面 (Page Host) 子节点。 applicationsPageHost.navigateToPreviousPage(); |
导航至页面 (Page) 或主页面 (Page Host) 节点的页面 (Page) 或主页面 (Page Host) 父节点。
| 语法 | navigateToParentPage()
|
| 示例 | //导航至当前节点的页面 (Page) 或主页面 (Page Host) 父节点。 node.navigateToParentPage(); //查找别名指向的节点。别名可以指向页面 (Page) 或主页面 (Page Host) 节点。 var mediaPage = node.lookupNode('#MediaPage'); //导航至 mediaPage 节点的页面 (Page) 或主页面 (Page Host) 父节点。 mediaPage.navigateToParentPage(); |
使用状态机函数控制您的应用程序的状态。
将应用程序设为您调用函数的节点的状态机的状态组中的状态。
请参阅 goToNextDefinedState 和 goToPreviousDefinedState。
| 语法 | goToState('stateGroup.state')
|
||||
| 参数 |
|
||||
| 示例 | //获取您在其中执行脚本的节点的布局高度 (Layout Height) 属性的值。 var height = node.getProperty('Node.Height'); //检查布局高度 (Layout Height) 属性的值。 //如果布局高度 (Layout Height) 属性的值小于或等于 50,则将应用程序设为 //名为 FuelGauge 的状态组中名称为 Empty 的状态,且该状态组位于当前节点的状态机中。 if (height <= 50) { node.goToState('FuelGauge.Empty'); } //如果布局高度 (Layout Height) 属性的值大于 50 且小于或等于 250, //则将应用程序设为名为 FuelGauge 的状态组中名称为 Half 的状态,且该状态组在当前节点的状态机中。 else if (height > 50 && height <= 250) { node.goToState('StateGroup.Half'); } //对于布局高度 (Layout Height) 属性的所有其他值,将应用程序设为 //名为 FuelGauge 的状态组中名称为 Full 的状态,且该状态组在当前节点的状态机中。 else { node.goToState('StateGroup.Full'); } |
将应用程序设为状态机的状态组中的下一状态。当达到状态组中的最后一个状态时,该函数会将应用程序设置为该状态组中的第一个状态。
请参阅 goToState 和 goToPreviousDefinedState。
| 语法 | goToNextDefinedState('stateGroup')
|
||
| 参数 |
|
||
| 示例 | //在您执行脚本的节点的名为 MenuControl 的状态组中,设置下一状态。
node.goToNextDefinedState('MenuControl');
|
将应用程序设为状态机的状态组中的上一状态。当达到状态组中的第一个状态时,该函数会将应用程序设置为该状态组中的最后一个状态。
请参阅 goToState 和 goToNextDefinedState。
| 语法 | goToPreviousDefinedState('stateGroup')
|
||
| 参数 |
|
||
| 示例 | //在您执行脚本的节点的名为 MenuControl 的状态组中,设置上一状态。
node.goToPreviousDefinedState('MenuControl');
|
您可以通过以下方式应用变换:
应用节点的布局旋转。您仅可将函数用于 2D 节点。
| 语法 | rotateLayout(angle)
|
||
| 参数 |
|
||
| 示例 |
//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//应用 90 度布局旋转。
text.rotateLayout(90);
|
向现有旋转应用围绕 x 轴的节点的布局旋转。您仅可将函数用于 3D 对象。
| 语法 | rotateXLayout(angle)
|
||
| 参数 |
|
||
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//应用围绕 x 轴的 120 度旋转。
text.rotateXLayout(120);
|
向现有旋转应用围绕 y 轴的节点的布局旋转。您仅可将函数用于 3D 对象。
| 语法 | rotateYLayout(angle)
|
||
| 参数 |
|
||
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//应用围绕 y 轴的 120 度布局旋转。
text.rotateYLayout(120);
|
向现有旋转应用围绕 z 轴的节点的布局旋转。您仅可将函数用于 3D 对象。
| 语法 | rotateZLayout(angle)
|
||
| 参数 |
|
||
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//应用围绕 z 轴的 120 度旋转。
text.rotateZLayout(120);
|
设置节点的布局旋转。您可以将函数用于 2D 和 3D 节点。
请参阅 getLayoutRotation、extractLayoutTransformEulerX、extractLayoutTransformEulerY 和 extractLayoutTransformEulerZ。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//设置围绕以下轴的布局旋转:
// - x 轴为 15 度
// - y 轴为 10 度
// - z 轴为 0 度
text.setLayoutRotation(15, 10, 0);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//将布局旋转的角度设为 90 度。
image.setLayoutRotation(90);
|
获取 2D 节点的 布局变换 (Layout Transformation) 属性的旋转角度(单位:度)。要获取 3D 节点的 布局变换 (Layout Transformation) 属性的旋转,使用 extractLayoutTransformEulerX、extractLayoutTransformEulerY 和 extractLayoutTransformEulerZ。
请参阅 setLayoutRotation。
| 语法 | getLayoutRotation()
|
| 返回 |
整数或浮点 |
| 示例 | //查找名为 Photo 的 图像 (Image) 节点。 var image = node.lookupNode('Photo'); //从选定节点的 布局变换 (Layout Transformation) 属性获取旋转。 var imageRotation = image.getLayoutRotation(); |
从 3D 节点的 布局变换 (Layout Transformation) 旋转 X (Rotation X) 属性获取 X 欧拉角。要旋转 2D 节点的布局变换 (Layout Transformation) 属性,可使用 getLayoutRotation。
请参阅 setLayoutRotation。
| 语法 | extractLayoutTransformEulerX()
|
|
| 返回 |
|
|
| 示例 | //查找名为 Plane 的 平面 (Plane) 节点。 var plane = node.lookupNode('./Viewport 2D/Scene/Plane'); //从选定节点的 布局变换 (Layout Transformation) 属性提取 X 欧拉角。 var xEulerAngle = plane.extractLayoutTransformEulerX(); |
从 3D 节点的 布局变换 (Layout Transformation) 旋转 Y (Rotation Y) 属性字段获取 Y 欧拉角。要旋转 2D 节点的布局变换 (Layout Transformation) 属性,可使用 getLayoutRotation。
请参阅 setLayoutRotation。
| 语法 | extractLayoutTransformEulerY()
|
|
| 返回 |
|
|
| 示例 | //查找名为 Button 3D 的 3D 按钮 (Button 3D) 节点。 var button = node.lookupNode('./Viewport 2D/Scene/Button 3D'); //从选定节点的 布局变换 (Layout Transformation) 属性提取 Y 欧拉角。 var yEulerAngle = button.extractLayoutTransformEulerY(); |
从 3D 节点的 布局变换 (Layout Transformation) 旋转 Z (Rotation Z) 属性字段获取 Z 欧拉角。要旋转 2D 节点的布局变换 (Layout Transformation) 属性,可使用 getLayoutRotation。
请参阅 setLayoutRotation。
| 语法 | extractLayoutTransformEulerZ()
|
|
| 返回 |
|
|
| 示例 | //查找名为 Cube 的 方框 (Box) 节点。 var box = node.lookupNode('./Viewport 2D/Scene/Cube'); //从选定节点的 布局变换 (Layout Transformation) 属性提取 Z 欧拉角。 var zEulerAngle = box.extractLayoutTransformEulerZ(); |
应用节点的布局缩放。您可以将函数用于 2D 和 3D 节点。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Ball 的 球体 (Sphere) 节点。
var ball = node.lookupNode('Ball');
//应用节点的布局缩放:
// - 将 x 轴的布局缩放比例增加 100%。
// - 将 y 轴的布局缩放比例减小 10%。
// - 将 z 轴的布局缩放比例增加 50%。
ball.scaleLayout(2, 0.9, 1.5);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//应用节点的布局缩放:
// - 将 x 轴的布局缩放比例增加 50%。
// - 将 y 轴的布局缩放比例减小 25%。
image.scaleLayout(1.5, 0.75);
|
增加或减小节点的布局缩放比例。您可以将函数用于 2D 和 3D 节点。
请参阅 getLayoutScale。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Ball 的 球体 (Sphere) 节点。
var ball = node.lookupNode('Ball');
//设置节点的布局缩放:
// - 将 x 轴的节点的布局缩放比例设为 200%。
// - 将 y 轴的节点的布局缩放比例设为 10%。
// - 将 z 轴的节点的布局缩放比例设为 50%。
ball.setLayoutScale(2, 0.1, 0.5);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//设置节点的布局缩放:
// - 在 x 轴上为 150%
// - 在 y 轴上为 75%。
image.setLayoutScale(1.5, 0.75);
|
获取节点的当前布局缩放比例值。您可以将函数用于 2D 和 3D 节点。
请参阅 setLayoutScale。
| 语法 | getLayoutScale()
|
| 返回 | x、y 和 z 轴的布局缩放比例值 |
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//获取 x、y 和 z 轴的布局缩放比例值。
text.getLayoutScale();
//仅获取 x 轴的布局缩放比例值。
text.getLayoutScale()[0];
//仅获取 z 轴的布局缩放比例值。
text.getLayoutScale()[2];//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//获取 x 和y 轴的布局缩放比例值。
image.getLayoutScale();
//仅获取 x 轴的布局缩放比例值。
image.getLayoutScale()[0];
|
向节点应用布局变换。您可以将函数用于 2D 和 3D 节点。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Ball 的 球体 (Sphere) 节点。
var ball = node.lookupNode('Ball');
//应用节点的布局变换:
// - 沿 x 轴移动 2 个设备无关单位。
// - 沿 y 轴移动 0.5 个设备无关单位。
// - 沿 z 轴移动 0.1 个设备无关单位。
ball.translateLayout(2, 0.5, 0.1);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//应用节点的布局变换:
// - 沿 x 轴移动 100 像素。
// - 沿 y 轴移动 50 像素。
image.translateLayout(100, 50);
|
设置节点的布局变换。您可以将函数用于 2D 和 3D 节点。
请参阅 getLayoutTranslation。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Ball 的 球体 (Sphere) 节点。
var ball = node.lookupNode('Ball');
//设置节点的布局变换:
// - 沿 x 轴移动 2 个设备无关单位。
// - 沿 y 轴移动 0.5 个设备无关单位。
// - 沿 z 轴移动 0.1 个设备无关单位。
ball.setLayoutTranslation(2, 0.5, 0.1);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//设置节点的布局变换:
// - 沿 x 轴移动 100 像素。
// - 沿 y 轴移动 50 像素。
image.setLayoutTranslation(100, 50);
|
获取节点的当前布局变换值。您可以将函数用于 2D 和 3D 节点。
请参阅 setLayoutTranslation。
| 语法 | getLayoutTranslation()
|
| 返回 |
对于 2D 节点:包含 x 和 y 轴的布局变换值的整数或浮点值的数组。 对于 3D 节点:包含 x、y 和 z 轴的布局变换值的整数或浮点值的数组。 |
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//获取 x、y 和 z 轴的布局变换值。
text.getLayoutTranslation();
//仅获取 x 轴的布局变换值。
text.getLayoutTranslation()[0];
//仅获取 z 轴的布局变换值。
text.getLayoutTranslation()[2];//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//获取节点的布局变换值。
image.getLayoutTranslation();
//仅获取 x 轴的布局变换值。
image.getLayoutTranslation()[0];
//仅获取 y 轴的布局变换值。
image.getLayoutTranslation()[1];
|
您可以通过以下方式应用变换:
应用节点的渲染旋转。您仅可将函数用于 2D 节点。
| 语法 | rotateRender(angle)
|
||
| 参数 |
|
||
| 示例 |
//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//应用 90 度渲染旋转。
text.rotateRender(90);
|
向现有旋转应用围绕 x 轴的节点的渲染旋转。您仅可将函数用于 3D 对象。
| 语法 | rotateXRender(angle)
|
||
| 参数 |
|
||
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//应用围绕 x 轴的 120 度旋转。
text.rotateXRender(120);
|
向现有旋转应用围绕 y 轴的节点的渲染旋转。您仅可将函数用于 3D 对象。
| 语法 | rotateYRender(angle)
|
||
| 参数 |
|
||
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//应用围绕 y 轴的 120 度渲染旋转。
text.rotateYRender(120);
|
向现有旋转应用围绕 z 轴的节点的渲染旋转。您仅可将函数用于 3D 对象。
| 语法 | rotateZRender(angle)
|
||
| 参数 |
|
||
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//应用围绕 z 轴的 120 度渲染旋转。
text.rotateZRender(120);
|
设置节点的渲染旋转。您可以将函数用于 2D 和 3D 节点。
请参阅 getRenderRotation、extractRenderTransformEulerX、extractRenderTransformEulerY 和 extractRenderTransformEulerZ。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//设置围绕以下轴的渲染旋转:
// - x 轴为 15 度
// - y 轴为 10 度
// - z 轴为 0 度
text.setRenderRotation(15, 10, 0);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//将渲染旋转的角度设为 90 度。
image.setRenderRotation(90);
|
获取 2D 节点的 渲染变换 (Render Transformation) 属性的旋转角度(单位:度)。要获取 3D 节点的 渲染变换 (Render Transformation) 属性的旋转,使用 extractRenderTransformEulerX、extractRenderTransformEulerY 和 extractRenderTransformEulerZ。
请参阅 setRenderRotation。
| 语法 | getRenderRotation()
|
| 返回 |
整数或浮点 |
| 示例 | //查找名为 Photo 的 图像 (Image) 节点。 var image = node.lookupNode('Photo'); //从选定节点的 渲染变换 (Render Transformation) 属性获取旋转。 var imageRotation = image.getRenderRotation(); |
从 3D 节点的 渲染变换 (Render Transformation) 旋转 X (Rotation X) 属性获取 X 欧拉角。要旋转 2D 节点的 渲染变换 (Render Transformation)属性,可使用 getRenderRotation。
请参阅 setRenderRotation。
| 语法 | extractRenderTransformEulerX()
|
|
| 返回 |
|
|
| 示例 | //查找名为 Plane 的 平面 (Plane) 节点。 var plane = node.lookupNode('./Viewport 2D/Scene/Plane'); //从选定节点的 渲染变换 (Render Transformation) 属性提取 X 欧拉角。 var xEulerAngle = plane.extractRenderTransformEulerX(); |
从 3D 节点的 渲染变换 (Render Transformation) 旋转 Y (Rotation Y) 属性字段获取 Y 欧拉角。要旋转 2D 节点的 渲染变换 (Render Transformation)属性,可使用 getRenderRotation。
请参阅 setRenderRotation。
| 语法 | extractRenderTransformEulerY()
|
|
| 返回 |
|
|
| 示例 | //查找名为 Button 3D 的 3D 按钮 (Button 3D) 节点。 var button = node.lookupNode('./Viewport 2D/Scene/Button 3D'); //从选定节点的 渲染变换 (Render Transformation) 属性提取 Y 欧拉角。 var yEulerAngle = button.extractRenderTransformEulerY(); |
从 3D 节点的 渲染变换 (Render Transformation) 旋转 Z (Rotation Z) 属性字段获取 Z 欧拉角。要旋转 2D 节点的 渲染变换 (Render Transformation)属性,可使用 getRenderRotation。
请参阅 setRenderRotation。
| 语法 | extractRenderTransformEulerZ()
|
|
| 返回 |
|
|
| 示例 | //查找名为 Cube 的 方框 (Box) 节点。 var box = node.lookupNode('./Viewport 2D/Scene/Cube'); //从选定节点的 渲染变换 (Render Transformation) 属性提取 Z 欧拉角。 var zEulerAngle = box.extractRenderTransformEulerZ(); |
应用节点的渲染比例。您可以将函数用于 2D 和 3D 节点。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Ball 的 球体 (Sphere) 节点。
var ball = node.lookupNode('Ball');
//应用节点的渲染比例:
// - 将 x 轴的渲染比例增加 100%。
// - 将 y 轴的渲染比例减小 10%。
// - 将 z 轴的渲染比例增加 50%。
ball.scaleRender(2, 0.9, 1.5);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//应用节点的渲染比例:
// - 将 x 轴的渲染比例增加 50%。
// - 将 y 轴的渲染比例减小 25%。
image.scaleRender(1.5, 0.75);
|
增加或减小节点的渲染比例。您可以将函数用于 2D 和 3D 节点。
请参阅 getRenderScale。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Ball 的 球体 (Sphere) 节点。
var ball = node.lookupNode('Ball');
//设置节点的渲染比例:
// - 将 x 轴的节点的布局缩放比例设为 200%。
// - 将 y 轴的节点的布局缩放比例设为 10%。
// - 将 z 轴的节点的布局缩放比例设为 50%。
ball.setRenderScale(2, 0.1, 0.5);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//设置节点的渲染比例:
// - 在 x 轴上为 150%
// - 在 y 轴上为 75%。
image.setRenderScale(1.5, 0.75);
|
获取节点的当前渲染比例值。您可以将函数用于 2D 和 3D 节点。
请参阅 setRenderScale。
| 语法 | getRenderScale()
|
| 返回 | x、y 和 z 轴的渲染旋转值 |
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//获取 x、y 和 z 轴的渲染比例值。
text.getRenderScale();
//仅获取 x 轴的渲染比例值。
text.getRenderScale()[0];
//仅获取 z 轴的渲染比例值。
text.getRenderScale()[2];//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//获取 x 和y 轴的渲染比例值。
image.getRenderScale();
//仅获取 x 轴的渲染比例值。
image.getRenderScale()[0];
|
向节点应用渲染变换。您可以将函数用于 2D 和 3D 节点。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Ball 的 球体 (Sphere) 节点。
var ball = node.lookupNode('Ball');
//应用节点的渲染变换:
// - 沿 x 轴移动 2 个设备无关单位。
// - 沿 y 轴移动 0.5 个设备无关单位。
// - 沿 z 轴移动 0.1 个设备无关单位。
ball.translateRender(2, 0.5, 0.1);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//应用节点的渲染变换:
// - 沿 x 轴移动 100 像素。
// - 沿 y 轴移动 50 像素。
image.translateRender(100, 50);
|
设置节点的渲染变换。您可以将函数用于 2D 和 3D 节点。
请参阅 getRenderTranslation。
| 语法 |
对于 2D 节点: 对于 3D 节点: |
||||||
| 参数 |
|
||||||
| 示例 |
//查找名为 Ball 的 球体 (Sphere) 节点。
var ball = node.lookupNode('Ball');
//设置节点的渲染变换:
// - 沿 x 轴移动 2 个设备无关单位。
// - 沿 y 轴移动 0.5 个设备无关单位。
// - 沿 z 轴移动 0.1 个设备无关单位。
ball.setRenderTranslation(2, 0.5, 0.1);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//设置节点的渲染变换:
// - 沿 x 轴移动 100 像素。
// - 沿 y 轴移动 50 像素。
image.setRenderTranslation(100, 50);
|
获取节点的当前渲染变换值。您可以将函数用于 2D 和 3D 节点。
请参阅 setRenderTranslation。
| 语法 | getRenderTranslation()
|
| 返回 |
对于 2D 节点:包含 x 和 y 轴的渲染变换值的整数或浮点值的数组。 对于 3D 节点:包含 x、y 和 z 轴的渲染变换值的整数或浮点值的数组。 |
| 示例 |
//查找名为 Text 的 3D 文本块 (Text Block 3D) 节点。
var text = node.lookupNode('Text');
//获取 x、y 和 z 轴的渲染变换值。
text.getRenderTranslation();
//仅获取 x 轴的渲染变换值。
text.getRenderTranslation()[0];
//仅获取 z 轴的渲染变换值。
text.getRenderTranslation()[2];//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//获取节点的渲染变换值。
image.getRenderTranslation();
//仅获取 x 轴的渲染变换值。
image.getRenderTranslation()[0];
//仅获取 y 轴的渲染变换值。
image.getRenderTranslation()[1];
|
设置节点的渲染变换原点。
渲染变换原点的值以节点的宽度和高度百分比表示。例如,看看这些值如何定义一个节点的渲染变换原点:
您仅可将函数用于 2D 节点。
请参阅 getRenderTransformationOrigin。
| 语法 | setRenderTransformationOrigin(x, y)
|
||||
| 参数 |
|
||||
| 示例 | //查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//将节点的渲染变换原点设为
//节点的右下角
image.setRenderTransformationOrigin(1, 1);//查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//将节点的渲染变换原点设为
//节点的中心
image.setRenderTransformationOrigin(0.5, 0.5);
|
获取当前的渲染变换原点。
渲染变换原点的值以节点的宽度和高度百分比表示。例如,看看这些值如何定义一个节点的渲染变换原点:
您仅可将函数用于 2D 节点。
请参阅 setRenderTransformationOrigin。
| 语法 | getRenderTransformationOrigin()
|
| 返回 |
包含 x 和 y 轴的渲染变换原点值的整数或浮点值的数组。 |
| 示例 | //查找名为 Photo 的 图像 (Image) 节点。
var image = node.lookupNode('Photo');
//获取节点的渲染变换原点值。
image.getRenderTransformationOrigin();
//仅获取 x 轴的渲染变换值。
image.getRenderTransformationOrigin()[0];
//仅获取 y 轴的渲染变换值。
image.getRenderTransformationOrigin()[1];
|